// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Make new connections in your area – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Make new connections in your area

Are you wanting a fresh relationship? if that’s the case, you might want to give consideration to meeting local asian singles. there are numerous benefits to dating an asian person, and you’ll be astonished just how suitable you might be using them. first, asian people are understood with regards to their cleverness. they are generally very effective in business and often have a good love of life. they are really loyal and caring individuals. if you should be shopping for a serious relationship, asian people are a great choice. they are often extremely monogamous and tend to be extremely faithful with their partners. in addition they are usually very communicative and affectionate. they are generally really active and revel in various sorts of activities. also, they are known due to their hospitality, and they’re always very happy to make brand new buddies. if you are seeking a brand new relationship, give consideration to fulfilling local asian singles. they could be the right match for you personally.

Find your perfect match with your asian singles database

Looking for a powerful way to meet new people? look absolutely no further than our asian singles database! with more than 2 million users, we’ve the right mix of singles from all over the world. whether you are looking for a long-term relationship or simply a casual date, our database has you covered. unsure where to start? check out our highlighted pages for a feel for whom we are and what we’re about. after that, it’s easy to get the perfect match for you personally. just what exactly have you been awaiting? give our asian singles database a try today!

Why you should meet local asians

There are many and varied reasons why you should meet local asian. for starters, they make great friends. asians are usually really friendly people, plus they are constantly happy to meet new people. in addition, asians are of the most educated individuals worldwide. they are usually able to speak a few languages fluently, plus they are usually extremely knowledgeable about different countries. finally, asians are often extremely successful in the commercial world. this means that they have a lot to share with you, and you may probably enjoy dealing with them.

Get prepared to meet your perfect asian woman – here is how

Ready to meet your perfect asian woman? listed here is exactly how! finding a compatible partner is essential for almost any relationship, and finding one that stocks your exact same social back ground can be a lot more enriching. if you’re seeking to meet local asian females, here are some tips to allow you to get started. very first, be open-minded and ready to explore. much like any relationship, it’s also important to have the ability to trust and start towards asian partner. what this means is being ready to take to brand new things and start to become ready to accept brand new experiences. next, be prepared to show patience. it will take some time to build up a good experience of an asian woman, so never expect items to take place instantaneously. take your time and invite the relationship to develop naturally. finally, be respectful. you need to remember that asian tradition is very not the same as our personal. be respectful of her tradition and the woman philosophy, plus don’t make an effort to force your views on her. let her function as the one to initiate conversation, and become ready to listen. by after these guidelines, you will be well on the road to finding your perfect asian woman.

Make a love experience of likeminded asians

Making a love experience of likeminded asians is a rewarding experience. with many countries and languages worldwide, it can be difficult to find somebody with who you share common interests. however, with some work, you can find an individual who could make your heart race. there are numerous of things that you can certainly do to increase your odds of finding a person who works with you. first, it is important to be open-minded and look for a person who is comparable to you. this means you shouldn’t give attention to finding someone who is exactly as if you, but alternatively a person who shares similar values and passions. next, it is important to be friendly and welcoming. which means that you should be prepared to talk and get to know the individual you might be dating. if you are not interested in observing anyone, the likelihood is that they’ll not be thinking about observing you either. finally, it’s important to be honest and upfront about your emotions. this means that you ought to be ready to tell anyone regarding the passions and feelings without having to be afraid of getting rejected. in the event that person will not feel appropriate for you, they have been free to say so. but know that some people might be more delicate than others and might never be capable manage rejection. in these cases, it may possibly be far better move on.

How to get the perfect match among local asians

Finding an ideal match among local asians could be a daunting task. but with just a little work, it is possible to find a person who is a good complement you. here are a few tips to support you in finding the proper individual. 1. start by doing your research. it is critical to understand whenever possible concerning the individuals you’re dating. question them about their backgrounds, passions, and hobbies. this may help you get to know them better and discover common ground. 2. be open-minded. it is critical to be versatile whenever dating local asians. if some one would like to do something that is not typical for you, most probably to trying it. you may be astonished at just how much it is possible to enjoy yourselves if you are available to brand new experiences. 3. be truthful. it’s important to be honest along with your dates. for those who have reservations about something, be truthful and inform them. this can help them realize you better and work out certain that the partnership is a good complement the two of you. 4. be respectful. it is vital to be respectful of the dates and their culture. don’t make fun of their traditions or philosophy. this can just cause stress and conflict. 5. show patience. it can take a while to find the right match. have patience and allow things develop obviously. this will give you the best chance of finding a relationship that is a good fit for the two of you.

Meet local asian women for dating and romance

Looking for an attractive and exotic woman to generally share your daily life with? look absolutely no further versus local asian women! these women come from all around the globe, and they are sure to have something special to supply. whether you are interested in a girlfriend, a wife, or a pal, these women are sure to make your life more interesting. what exactly have you been waiting for? begin dating the local asian women today!

Find your perfect match – discover brand new opportunities

Finding your perfect match – discover brand new opportunities

trying to find a brand new relationship? have you thought to decide to try dating local asian women? these are typically a remarkable and diverse team, and there are lots of opportunities to find that special someone. here are a few tips to help you get started:

1. join internet dating sites and discussion boards. this is a great way to meet individuals and move on to understand them better. there are also local asian ladies through these websites. 2. usage social media. this is certainly a terrific way to relate with people to see about their everyday lives. you could utilize social media discover local asian ladies. 3. attend events. 4. go out on dates. 5. use online dating.

Find your match among a huge number of local asian singles

Finding your match among a huge number of local asian singles has never been easier as a result of the net. with many internet dating sites to choose from, it can be difficult to find out what type is suitable for you. but do not worry, we’re right here to simply help. in this article, we will discuss the most useful online dating services for asian singles and give you some easy methods to find your match. first, you need to recognize that the best online dating sites for asian singles are the ones that cater especially for this population. which means that it’s also important to search for internet sites that have numerous asian people, including the ones that offer features specifically designed for asian singles. the best online dating sites for asian singles include eharmony, match.com, and asiandate.com. each of these internet sites has a large individual base, provides a number of features, and it is created specifically for asian singles. once you have chosen a website, the next step is to start browsing through the profiles associated with people. that’s where the main element to locating your match lies. always search for profiles that match your interests and character. furthermore, be sure to try to find users with written about their experience as asian singles on the website. this will provide a much better idea of the types of things that are essential for them and will enable you to relate with them. finally, it’s important to keep in mind that online dating sites just isn’t constantly simple. but with only a little effort, there is your match and commence a relationship that’s perfect for you.

Design and Develop by Ovatheme